package com.atguigu.java1;

/**
 * @author : leimingchao
 * @date Date : 2021年08月27日 0:58
 */
public class Customer {

    private String name;
    private int age;

    public Customer() {
    }

    public Customer(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 重写的原则，比较2个对象的实体内容(即：name和age)是否相同
     * @param obj
     * @return
     */
    //手动实现equals()的重写
    // @Override
    // public boolean equals(Object obj) {
    //
    //     System.out.println("Customer equals().....");
    //     if (this == obj) {
    //         return true;
    //     }
    //
    //     if (obj instanceof Customer) {
    //         Customer customer = (Customer) obj;
    //         //比较2个对象的每个属性是否都相同
    //         // if (this.age == customer.age && this.name.equals(customer.getName())) {
    //         //     return true;
    //         // } else {
    //         //     return false;
    //         // }
    //         //或
    //         return this.age == customer.age && this.name.equals(customer.getName());
    //     }
    //
    //     return false;
    // }


    /**
     * 自动生成的equals()
     * @param o
     * @return
     */
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Customer customer = (Customer) o;

        if (age != customer.age) return false;
        return name != null ? name.equals(customer.name) : customer.name == null;
    }

    // @Override
    // public String toString() {
    //     return "Customer [name = " + name + ", age = " + age + "]";
    // }

    /**
     * 自动生成
     * @return
     */
    @Override
    public String toString() {
        return "Customer{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
